Positioning and alignment aids for shape objects having authorable behaviors and appearances

ABSTRACT

An intelligent shape is displayed in conjunction with a CAD application program, wherein the intelligent shape selectively displays positioning and alignment aids on the monitor of the computer to assist a user in operating one or more functions of the host application program. When invoked, the intelligent shape displays plugs and sockets related to the shapes on the monitor and aids the user in positioning, aligning, rotating, and connecting shapes together.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to graphical user interfaces,and in particular, to a method, apparatus, and article of manufacturefor providing positioning and alignment aids for software objects withauthorable behaviors and appearances for computer programs having agraphical user interface.

2. Description of the Related Art

The use of Computer Assisted Drafting (CAD) application programs is wellknown in the art. Some CAD programs provide templates and palettes thathelp users create documents, graphical presentations, etc. However,these templates and palettes provide only limited assistance and dolittle to help the user connect standard CAD components, such as shapesand other objects, in the CAD document.

Many standard components have several connection points that can connectto other components. Typically, if a user wants to connect componentstogether, the user must drag the components onto the working screen, andsubsequently use toolbar accessed functions to move the component,rotate the component, or size the component in order to create afinished document or graphical presentation.

This multiple step approach of dragging the components onto the screenand then modifying the components to create a drawing is inefficient andtime consuming. Further, the process is not easily learned by a user,and prevents many users from utilizing the CAD program to its fullestextent.

Consequently, there is a need in the art for improved techniques forconnecting components in a CAD program, in order to create documentsfaster. Further, there is a need in the art for improved techniques forconnecting components in a CAD program that eliminates the need foraccessing toolbar or menu functions.

SUMMARY OF THE INVENTION

To address the requirements described above, the present inventiondiscloses a method, apparatus, and article of manufacture for executingintelligent shape programming in a computer within a CAD applicationprogram, wherein the intelligent shape programming selectively displaysinformational aids associated with a displayed shape on the monitor ofthe computer to assist a user in manipulating the shape while operatingone or more functions of the CAD application program. When invoked, theintelligent shape programming displays plugs and sockets on the monitorrelated to the selected shape and the target shape, and aids the user inconnecting the selected shape to the target shape.

This instruction is accomplished by the intelligent shape programmingexecuting a predefined sequence of steps to perform the selected task.The intelligent shape programming also monitors the user's interactionwith the CAD application program during execution of the sequence ofsteps.

BRIEF DESCRIPTION OF THE DRAWINGS

Referring now to the drawings in which like reference numbers representcorresponding parts throughout:

FIG. 1 is an exemplary hardware environment used to implement thepreferred embodiment of the invention;

FIG. 2 illustrates the components of a shape object of the presentinvention;

FIGS. 3A-3I are “snapshots” of the plugs and sockets displayed on themonitor 110 in one example of the operation of the preferred embodiment;

FIG. 4 is a flowchart that illustrates the general logic of a message orevent-driven computer system performing the steps of the presentinvention; and

FIG. 5 is a flowchart that illustrates the general logic that isperformed to determine whether to display the plugs and sockets of thepresent invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

In the following description, reference is made to the accompanyingdrawings which form a part hereof, and which is shown, by way ofillustration, several embodiments of the present invention. It isunderstood that other embodiments may be utilized and structural changesmay be made without departing from the scope of the present invention.

Overview

The present invention is a computer-assisted drafting (CAD) program thatprovides intelligent shape objects, wherein the intelligent shapeobjects include plugs and sockets for automatically connectingassociated shape objects together whenever the associated shape objectsare displayed in proximity to one another on a monitor of a computer.

Hardware Environment

FIG. 1 is an exemplary hardware environment used to implement thepreferred embodiment of the invention. The present invention istypically implemented using a personal computer 100, which generallyincludes, inter alia, a processor 102, random access memory (RAM) 104,data storage devices 106 (e.g., hard, floppy, and/or CD-ROM disk drives,etc.), data communications devices 108 (e.g., modems, networkinterfaces, etc.), monitor 110 (e.g., CRT, LCD display, etc.), mousepointing device 112 and keyboard 114. It is envisioned that attached tothe personal computer 100 may be other devices such as read only memory(ROM), a video card, bus interface, printers, etc. Those skilled in theart will recognize that any combination of the above components, or anynumber of different components, peripherals, and other devices, may beused with the computer 100.

The personal computer 100 usually operates under the control of anoperating system 116. The present invention is usually implemented inone or more application programs 118 that operate under the control ofthe operating system 116. The application program 118 is usually a CADprogram or other graphics program. In the preferred embodiment, theapplication program 118 provides one or more intelligent shape objects200.

Generally, the application program 118 and intelligent shape objects 200comprise instructions and/or data that are embodied in or retrievablefrom a computer-readable device, medium, or carrier, e.g., the datastorage device 106, a remote device coupled to the computer 100 via thedata communications device 108, etc. Moreover, these instructions and/ordata, when read, executed, and/or interpreted by the computer 100 causethe computer 100 to perform the steps necessary to implement and/or usethe present invention.

Thus, the present invention may be implemented as a method, apparatus,or article of manufacture using standard programming and/or engineeringtechniques to produce software, firmware, hardware, or any combinationthereof. The term “article of manufacture” (or alternatively, “computerprogram product”) as used herein is intended to encompass a computerprogram accessible from any computer-readable device, carrier, or media.Of course, those skilled in the art will recognize many modificationsmay be made to this configuration without departing from the scope ofthe present invention.

Those skilled in the art will recognize that any combination of theabove components, or any number of different components, includingcomputer programs, peripherals, and other devices, may be used toimplement the present invention, so long as similar functions areperformed thereby.

Intelligent Shape Objects

FIG. 2 is a block diagram that illustrates the components of anintelligent shape object 200 according to the present invention. Theintelligent shape object 200 is comprised of a number of differentelements: (1) a spatial frame 202 that provides the underlying structureand spatial mapping for the intelligent shape object 200; (2) anentities collection 204 that includes one or more objects of geometryalong with one or more other (subordinate) shape objects 201 thattogether make up the (superordinate) shape object 200; (3) one or moreplugs 206 and sockets 208 that provide connectivity to other shapeobjects 200; (4) one or more handles 210 that provide directmanipulation of the shape object 200, thereby allowing the user tostretch or otherwise resize the shape object 200; (5) a propertiescollection 212 that contains all other properties of the shape object200, including those defined by authors of the shape object 200; (6) adrag handler 214 that defines the behavior of the shape object 200 whilethe shape object 200 is being dragged; (7) a message handler 216 thatdefines the behavior of the shape object 200 when the shape object 200receives system level commands or inputs; and (8) a custom commandcollection 218 that allows the user to define custom commands for theshape object 200. The frame 202, the entities 204, the plugs 206, thesockets 208, the handles 210, the properties 212, the drag handler 214,the message handler 216, and the custom commands 218 may be imbued withdata and logic that add intelligence to the shape object 200, in orderto provide added convenience to the user.

Example Shape Object

As an example, consider a shape object 200 that describes a chair. Sucha shape object 200 has a geometry, which describes the paths used torender the appearance of the chair on a page. The shape object 200 maybe composed of geometry that describes the chair's support members, withsub-shapes making up the seat, back, arms and other elements (and eachof those shapes have their own properties, geometry, and so on). Thechair may be modular, taking optional wheels, arms, and levers, each ofwhich connects via plugs 206 and sockets 208. The chair may come in twoor three sizes, any of which may be invoked by dragging handles. Thischair may have a variety of properties such as materials, costs, names,and catalog numbers. And the chair resides within the document page withrespect not only to the page itself but also with respect to the otherfurniture and shapes that may also be included on the page. Theintelligence built into the chair's shape object 200, plugs 206, sockets208, handles 210, and properties 212 provides the convenience of, forinstance, adjusting cost with resizing, allowing or disallowingaccessories (control levers, upholstery), enforcing consistent choicesof seat, back, and arm designs, and whatever other relationships may beinterdependent.

Frame

The frame 202 maps the spatial aspects of the elements of the shapeobject 200 to a particular space, notably the document page coordinatespace. The frame 202 is a property of the shape object 200, and as suchis under the control of the author of the shape object 200, e.g., theVisual Basic for Applications™ (VBA) programmer, and anyone else withaccess to the shape properties.

The frame 202 of a shape object 200 exposes a geometric framework towhich the elements of the shape object 200 can be attached viaexpressions. The frame 202 also serves as a superstructure that relatesall the other objects, some of which may be non-geometric, within theshape object 200. In addition, the frame 202 characterizes the spatialaspect of the shape object 200 as a whole, to allow the interpretationof methods such as Move, Rotate and Mirror. Finally, the frame 202provides the mapping, if any, between the inside of the shape object 200and the outside of the shape object 200.

Several types of frames 202 can be envisioned: line frames, rectangularframes, scaling rectangle frames, and polar frames.

A line frame 202 provides a frame 202 for a line shape object 200 thathas a start point and an end point. The user can modify the start or endpoint and manipulate the start and end points of the line.

A scaling rectangle frame 202 provides a frame for a shape object 200that expands and shrinks in size, e.g., a custom-built desktop shouldexpand or shrink to fit a space exactly. The internal geometry of theshape object 200 is scaled as the user expands or shrinks the shapeobject 200 on the monitor of the computer.

A polar frame 202 provides a frame for a shape object 200 that alwaysexpands or shrinks in both dimensions proportionally. Other types offrames are also possible with the present invention.

Entities Collection

The entities collection 204 stores a set of one or more entities for agiven shape object 200. Most shape objects 200 require geometry forrendering the shape object's 200 appearance. The entities collection 204holds the geometry that makes up the shape object 200, e.g, a shapeobject 200 that represents a tire would contain two concentric circles,and therefore two objects in the entities collection 204. In addition,the entity 204 can hold other shape objects 200 to fully define theshape object 200. A complex shape object 200 may comprise severalentities 204, each of which may store some geometry as well asparticular related sub-shape objects 200.

Plugs and Sockets

The plugs 206 and sockets 208 enable geometric and logical connectionsbetween shape objects 200. Plugs 206 enable one side of the connection,and sockets 208 enable the other side. Plugs 206 and sockets 208 can bedesigned to accept any type of mating connectors, or specific types ofconnectors, much like electrical plugs and sockets 208 used in a home todistinguish between 110VAC and 220VAC connections. For example, a deluxechair shape object 200 may contain sockets 208 that accept only deluxeplugs 206 to disallow mating less expensive seats, backs, and arms tothe deluxe chair shape object 200.

Handles

The handles 210 are points located within the shape object 200 that areexposed to the user interface (UI) when the shape object 200 isselected. Handles 210 allow direct manipulation of geometry within theshape object 200, as well as any other shape object 200 parameter ofcollection element that can be referenced via expressions.

Properties

The properties 212 are other custom properties defined by the shapeobject 200 author not contained within the frame 202, handles 210, plugs206, and sockets 208. For example, custom properties 212 can be amanufacturer code (a string), a price (a currency value) or acoefficient of friction for a given material. Properties 212 can also bedefined for intermediate or scratch values within a shape object 200.

The Drag Handler

The shape object 200 contains objects that handle messages and thebehavior of the shape object 200. The shape object 200 contains anobject that, for example, handles the shape object's 200 drag and dropbehavior. This object is known as the drag handler 214. The drag handler214 can be customized or initially authored by a user, which enables auser to change the actions performed by the shape object 200 uponentering the program as well as the shape object's 200 interactions withother shape objects 200.

The Message Handler

The shape object 200 also contains an object that handles messagespassed down from the containing system. This object is called themessage handler 216. The message handler 216, like the drag handler 214,can be customized or initially authored by a user, which enables a userto change the actions performed by the shape object 200 in response tokeyboard, mouse, and other system events.

Custom Commands

In addition to the above, each shape object 200 has custom commands 218that can be programmed by the user. These custom commands 218 areaccessed by the user by using a context menu, typically accessed byusing the right hand button on a mouse pointing device 112. For example,the chair shape object 200 described above may have a custom command 218associated with it to include a solid back on the shape object 200, or acarved back, or a padded seat, etc., depending on the desires of theuser.

Plugs and Sockets as Positioning and Alignment Aids

In the preferred embodiment, the plugs 206 and sockets 208 are objectsowned by shape objects 200 that assist the user in positioning the shapeobjects 200 relative to one another. The plugs 206 and sockets 208 arehighlighted portions of the shape object 200 that have orientation,direction, and other programmable properties that allow for directedinteraction between shape objects 200 within a document.

For example, when connecting two shape objects 200 together, the plugs206 and sockets 208 automatically position the shape object 200 beingdragged so that one shape object 200 connects to another properly. Norotation or flip tools, typically dragged from a toolbar, are required;the plug 206 and socket 208 properties automatically rotate and/or flipthe shape object 200 to fit properly with adjoining shape objects 200.Thus, a drawing can be created by “snapping” or “gluing” togetherseveral various predefined components, e.g., squares, lines, text boxes,etc., where the plugs 206 and sockets 208 assist the user by showing theuser which connections are proper, which connections are improper, andorienting and positioning each shape object 200 for the user. Thisautomatic orientation and positioning makes creation of drawings andtextual materials simpler and less time consuming.

Further, users can define their own shape objects 200, with customdefinitions for plugs 206 and sockets 208, to fit specific applications.An editor utility is used to define shape objects 200, plugs 206, andsockets 208. The editor utility can be graphical in nature, or can allowthe user to directly write software code instructions to edit the plugs206, sockets 208, and other shape object 200 properties.

Operation of the Plugs and Sockets

FIGS. 3A-3I are “snapshots” of the plugs 206 and sockets 208 asdisplayed on the monitor 110 in one example of the operation of thepreferred embodiment. These snapshots illustrate an exemplary sequenceof events involving plugs 206 and sockets 208 within the presentinvention.

As shown in FIG. 3A, monitor 110 displays main window 300. Main window300 contains several other subordinate windows, including library window302, working space window 304, and working area 306. In this example,various shape objects 200 are brought from a library of shape objects200 into a working space to create a graphical presentation. To create adocument, a user drags a shape object 308 or 310 from library window 302to working space window 304, and drops the shape object 308 or 310 ontoa given spot within working area 306. This process is repeated for thevarious shape objects 308 or 310 that the user desires. Several shapeobjects 308 and 310 are illustrated in library window 302, includingt-shaped duct 308 and straight duct 310; other shape objects 200 couldbe shown in library window 302 as well.

In FIG. 3B, straight duct 310 has been dragged and dropped from librarywindow 302 to working area 306 and the t-shaped duct 308 is beingdragged by cursor 312. As a user drags the t-shaped duct 308 from thelibrary window 302 into the working space window 304, the plugsassociated with the t-shaped duct 308 become selectively visible. Thevisibility and operability of the plugs can be programmed to operateselectively depending on the position of the cursor within t-shaped duct308. The t-shaped duct 308, once dragged into working space window 304,displays arrowheads 314, 316, and 318 to illustrate to the user thatthese are the attachment points, or plugs, for the t-shaped duct 308.

In FIG. 3C, as the t-shaped socket 308 is dragged spatially proximate tothe straight duct 310 in the working area 306, sockets 320 and 322 aredisplayed on the straight duct 310. These sockets 320 and 322 illustrateto the user the attachment points for connecting the straight duct 310to the t-shaped socket 308. The user can now see that straight duct 310has multiple sockets for attachment to the t-shaped duct 308. The socket320 or 322 can be defined to be fixed at a given point on the t-shapedduct 310, or can be defined to be active over a certain range of spatialproximity on the t-shaped duct 310. This is defined to be a “stretchablesocket,” because it allows a plug 314, 316, 318 to be glued to thesocket 320,322 at various places, instead of one place, as shown in FIG.3C.

In FIG. 3D, as t-shaped duct 308 is dragged closer to straight duct 310,plug 318 changes appearance to indicate to the user that plug 318 iswithin range of a socket 320. In addition, socket 320 can also changeappearance to indicate that socket 320, not socket 322, is the intendedtarget for plug 318. The plug 318 and socket 320 can also changeappearance if the plug 318 and socket 320 pairing is not compatible. Forexample, if the air flow in the ducts must flow in a certain direction,the plug 318 and socket 320 can indicate that they are incompatible bychanging color, by stopping the display of either the plug 318 or socket320, or by any other means to indicate to the user that that plug 318socket 320 pair are not compatible with each other.

FIG. 3E shows t-shaped duct 308 “snapping” to straight duct 310. Thisautomatic connection operation occurs if t-shaped duct 308 is left inspatial proximity to straight duct 310 for a sufficient period of time.Plug 318 and socket 320 are shown as indicating the joining or “gluing”of t-shaped duct 308 and straight duct 310. This indication can be achange of color for the plug 318 and socket 320, stopping the display ofthe plug 318 and socket 320, or any other means of indicating to theuser that the two components 318, 320 are snapped or glued together.Once the two components 318, 320 are snapped or glued together, and allshape objects 308 and 310 have been de-selected, the plugs 314, 316, 318and the sockets 320, 322 are no longer displayed on the monitor 110.Once t-shaped duct 308 and straight duct 310 are glued together, theuser can drag straight duct 210 and t-shaped duct 308 will be draggedalong, attached to straight duct 310. However, if the user drags thet-shaped duct 308, the t-shaped duct will detach from the straight duct310. This example illustrates the unidirectional property of the gluingfunction.

FIG. 3F shows the continued dragging of the t-shaped duct 308. As theuser drags t-shaped duct 308 past socket 320 of straight duct 310, plug318 changes appearance to indicate that plug 318 is no longer withinrange of socket 320.

In FIG. 3G, as the user continues to drag t-shaped duct 308, such thatplug 314 is spatially proximate to socket 320 of straight duct 310, plug314 changes appearance to indicate to the user that plug 314 is withinrange of socket 320. In addition, socket 320 can also change appearanceto indicate that socket 320, not socket 322, is the intended target forplug 314.

As shown in FIG. 3H, t-shaped duct 308 rotates to automatically alignplug 314 with socket 320 of straight duct 310. This automaticorientation is an example of the “intelligence” that may be providedplugs 206 and sockets 208. The rotation tool on the toolbar was not usedto perform the rotation of t-shaped duct 308; instead, the t-shaped duct308 “knew” to rotate itself and automatically align plug 314 with socket320.

In FIG. 3I, as t-shaped duct 308 is dragged past straight duct 310, suchthat plug 314 is no longer in range of socket 320, t-shaped ductautomatically re-orients itself to its original orientation when draggedfrom window 302.

Logic of the Plugs and Sockets

FIGS. 4 and 5 are flowcharts that illustrate the logic of the plugs 206and sockets 208 of intelligent shape objects 200 according to thepresent invention. This logic is provided for illustrative purposesonly, and different logic may be used to accomplish the same results.

In the preferred embodiment, the various operations described below arespecifically related to the plugs 206 and sockets 208 of the presentinvention. Those skilled in the art will recognize that the use of theintelligent shape objects 200 with different application programs 118may result in the different operations, or potentially the sameoperations.

FIG. 4 is a flowchart that illustrates the general logic of a message orevent-driven application program 118 performing the steps of the presentinvention. In such an application program 118, operations are performedwhen transitions are made, based upon the receipt of messages or events,from present or current states to new states.

Generally, the flowchart begins by waiting at block 400 for an event(e.g., a mouse button click). It should be appreciated that during thistime, other operating system 116 tasks, e.g., file, memory, and videotasks, etc., may also be carried out. When an event occurs, controlpasses to block 402 to identify the event. Based upon the event, as wellas the current state of the system determined in block 404, a new stateis determined in block 406. In block 408, the logic transitions to thenew state and performs any actions required for the transition. In block410, the current state is set to the previously determined new state,and control returns to block 400 to wait for more input events.

The specific operations that are performed by block 408 whentransitioning between states will vary depending upon the current stateand the event. The various operations required to implement and maintainthe intelligent shape objects 200 of the present invention representparticular events handled by the logic. However, it should beappreciated that these operations represent merely a subset of all ofthe events handled by the application program 118.

FIG. 5 is a flowchart that illustrates the general logic that isperformed to determine whether to display the plugs 206 and sockets 208of the present invention.

The logic begins at block 500 when an shape object 200 is selected by auser and dragged from the library window 302 to the working space window304. Alternatively, block 500 can represent a user selecting a shapeobject 200 within working space window 304 and moving the shape object200 to a new position within working space window 304.

Block 502 is a decision block that represents the application program118 determining whether there are plugs 206 associated with the selectedshape object 200. If so, control transfers to Block 504; otherwise,control transfers to Block 506.

Block 504 represents the application program 118 displaying the selectedshape object 200 on the monitor 110 with the associated plugs 206.

Block 506 represents the application program 118 displaying the selectedshape object 200 on the monitor 110 without any plugs 206, and all othershape objects 200 with sockets will be displayed without sockets 208,since there are no plugs 206 for mating the dragged part.

Block 508 is a decision block that represents the application program118 determining whether the dragged shape object 200 with associatedplugs 206 is dragged spatially proximate to a target shape object 200.This can occur when a user drags a shape object 200 from library window302 to the working space window 304, or when a user selects a shapeobject 200 within working space window 304 and moves the shape object200 to a new position within working space window 304. If so, controltransfers to block 510; if not, control returns to block 504.

Block 510 is a decision block that represents the application program118 determining whether there are sockets 208 associated with the targetshape object 200. If so, control transfers to Block 512; otherwise,control transfers to Block 514.

Block 512 represents the application program 118 displaying the targetshape object 200 on the monitor 110 with the associated sockets 208.

Block 514 represents the application program 118 displaying the targetshape object 200 on the monitor 110 without any sockets 208.

Block 516 is a decision block representing the application program 118determining whether the plug 206 of the selected shape object 200matches the socket 208 of the target shape object 200. If so, controlpasses to block 518; if not, control passes to block 520.

Block 518 represents the application program 118 rotating the selectedshape object 200 if necessary to align the plug 206 of the selectedshape object 200 to the socket 208 of the target shape object 200.

Block 520 represents the application program 118 displaying the socket208 of the target shape object 200 as incompatible with the plug 206 ofthe selected shape object 200. This can be performed by showing thesocket 208 in a different color, by changing the appearance of thesocket 208, by having the socket 208 keyed by shape object 200, or byinhibiting the display of an incompatible socket 208 for the targetshape object 200. Many other methods of illustrating incompatibility tothe user are envisioned, and the examples included herein are forillustration only and not meant to limit the scope of the presentinvention.

Block 522 is a decision block representing the application program 118determining whether the plug 206 of the selected shape object 200 isspatially proximate to the socket 208. If so, control passes to block524; if not, control returns to block 518.

Block 524 represents the application program 118 snapping or snappingand gluing the selected shape object 200 to the target shape object 200,wherein the plug 206 of the selected shape object 200 is aligned withthe socket 208 of the target shape object 200.

Conclusion

This concludes the description of the preferred embodiment of theinvention. The following describes some alternative embodiments foraccomplishing the present invention.

For example, any type of computer, such as a mainframe, minicomputer,workstation or personal computer, could be used with the presentinvention. In addition, any software program, application or operatingsystem having a user interface could benefit from the present invention.

Those skilled in the art will recognize that additional functions mayalso be implemented using the intelligent shape objects, plugs andsockets of the present invention. In addition, the plugs and sockets andintelligent shapes can be integrated closely with each applicationprogram by any number of different methods.

In summary, the present invention discloses a method, apparatus, andarticle of manufacture for executing intelligent shape programming in acomputer within a CAD application program, wherein the intelligent shapeprogramming selectively displays informational aids associated with adisplayed shape on the monitor of the computer to assist a user inmanipulating the shape while operating one or more functions of the CADapplication program. When invoked, the intelligent shape programmingdisplays plugs and sockets related to the selected shape and the targetshape on the monitor and aids the user in connecting a selected shape toa target shape.

The foregoing description of the preferred embodiment of the inventionhas been presented for the purposes of illustration and description. Itis not intended to be exhaustive or to limit the invention to theprecise form disclosed. Many modifications and variations are possiblein light of the above teaching. It is intended that the scope of theinvention be limited not by this detailed description, but rather by theclaims appended hereto.

What is claimed is:
 1. A method of displaying information on a monitorattached to a computer, comprising: (a) displaying a first object on themonitor; (b) displaying a second object on the monitor; (c) positioningthe second object proximate to the first object on the monitor; (d)displaying one or more socket objects on the first object and one ormore plug objects on the second object when the second object ispositioned proximate to the first object, wherein one or more of thesocket objects on the first object maintain knowledge regardinginteraction with one or more of the plug objects on the second objectindependently of the first object and second object; and (e)automatically coupling the second object to the first object by couplinga plug object of the second object to a socket object of the firstobject.
 2. The method of claim 1, wherein an appearance of the displayedsecond object on the monitor is modified when a type of the plug objecton the second object does not substantially match a type of the socketobject on the first object.
 3. The method of claim 1, wherein theautomatically coupling further comprises positioning the second objectto align the plug object of the second object to the socket object ofthe first object.
 4. The method of claim 1, wherein the automaticallycoupling further comprises automatically coupling a plug object of thesecond object to the first object along a defined range of the firstobject.
 5. The method of claim 1, wherein the displaying one or moresocket objects on the first object and one or more plug objects on thesecond object further comprises disabling the display of one or moresocket objects on the first object when the second object is notproximate to the first object.
 6. The method of claim 1, wherein thesocket objects and plug objects are selectively programmable by a userof the computer.
 7. A computer-implemented apparatus for displayinginformation, comprising: a computer having a monitor attached thereto,wherein the monitor displays a first object and a second object; meansfor positioning the second object proximate to the first object on themonitor; means for displaying one or more socket objects on the firstobject and one or more plug objects on the second object when the secondobject is positioned proximate to the first object, wherein one or moreof the socket objects on the first object maintain knowledge regardinginteraction with one or more of the plug objects on the second objectindependently of the first object and the second object; and means forautomatically coupling the second object to the first object by couplinga plug object of the second object to a socket object of the firstobject.
 8. An article of manufacture comprising a computer programcarrier readable by a computer and embodying one or more instructionsexecutable by the computer to perform method steps of displayinginformation on a monitor attached to the computer, the methodcomprising: (a) displaying a first object on the monitor; (b) displayinga second object on the monitor; (c) positioning the second objectproximate to the first object on the monitor; (d) displaying one or moresocket objects on the first object and one or more plug objects on thesecond object when the second object is positioned proximate to thefirst object, wherein one or more of the socket objects on the firstobject maintain knowledge regarding interaction with one or more of theplug objects on the second object independently of the first object andthe second object; and (e) automatically coupling the second object tothe first object by coupling a plug object os the second objects to asocket object of the first object.
 9. The apparatus of claim 7, whereinan appearance of the displayed second object on the monitor is modifiedwhen a type of the plug object on the second object does notsubstantially match a type of the socket object on the first object. 10.The apparatus of claim 7, wherein the means for automatically couplingfurther comprises means for positioning the second object to align theplug object of the second object to the socket object of the firstobject.
 11. The apparatus of claim 7, wherein the means forautomatically coupling further comprises means for automaticallycoupling a plug object of the second object to the first object along adefined range of the first object.
 12. The apparatus of claim 7, whereinthe means for displaying one or more socket objects on the first objectand one or more plug objects on the second object further comprisesmeans for disabling the display of socket objects on the first objectwhen the second object is not proximate to the first object.
 13. Theapparatus of claim 7, wherein the socket objects and plug objects areselectively programmable by a user of the computer.
 14. The article ofmanufacture of claim 8, wherein an appearance of the displayed secondobject on the monitor is modified when a type of the plug object on thesecond object does not substantially match a type of the socket socketon the first object.
 15. The article of manufacture of claim 8, whereinthe automatically coupling further comprises positioning the secondobject to align the plug object of the second object to the socketobject of the first object.
 16. The article of manufacture of claim 8,wherein the automatically coupling further comprises automaticallycoupling a plug object of the second object to the first object along adefined range of the first object.
 17. The article of manufacture ofclaim 8, wherein the displaying one or mote socket objects on the firstobject and one or more plug objects on the second object furthercomprises disabling the display of one or more socket objects on thefirst object when the second object is not proximate the first object.18. The article of manufacture of claim 8, wherein the socket objectsand plug objects are selectively programmable by the user of thecomputer.